package cn.graydove.bot.service;

import cn.graydove.bot.model.entity.Mock;
import cn.graydove.bot.model.entity.QqGroup;
import cn.graydove.bot.model.entity.User;

import java.util.Collection;
import java.util.List;

public interface GroupService {

    List<QqGroup> findAll();

    QqGroup findByGroupNumber(Long groupNumber);

    void grant(QqGroup group, Long qqNumber);

    void revoke(QqGroup group, Long qqNumber);

    QqGroup addUser(QqGroup group, User u);

    void addMock(QqGroup group, Mock mocks);

    void removeMocks(QqGroup group, Collection<Mock> mocks);

    void clearAttack();

    boolean isAttacking(Long groupId);

    boolean isOpen(Long groupId);

    User saveUser(User u);

    QqGroup save(QqGroup group);
}
